﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QuanCafe.QuanCafe_BUS_WebService;
using System.IO;
using System.Threading;

namespace QuanCafe
{
    public partial class frmTU_ThemThucUong : Form
    {

        // khai báo biến servie
        QuanCafe_BUS_WebServiceSoapClient ws = new QuanCafe_BUS_WebServiceSoapClient();

        // khai báo biến kiểm tra tính xác thực của thông tin đăng kí
        private bool _maThucUongHopLe = false;
        private bool _maNhomThucUongHopLe = false;
        private string _tenanhcu;

        #region Khai báo các delegate

        #endregion

        public frmTU_ThemThucUong(string linkanh, string mathucuong, string tenthucuong, string dongia, string thongtin, string tinhtrang, string nhom, string cachphache, string thongtindinhduong)
        {
            InitializeComponent();
            // gọi sự kiện kiểm tra ảnh
            uscThemThucUong.capNhatThucUong_chonAnh += new ucCapNhatThucUong.CapNhatThucUong_ChonAnhHandle(them_chonAnh);
            // sự kiện kiểm tra mã
            uscThemThucUong.capNhatThucUong_xacNhanMaThucUong += new ucCapNhatThucUong.CapNhatThucUong_XacNhanMaThucUongHandle(them_xacNhanMa);
            // sự kiện kiểm tra nhóm
            uscThemThucUong.capNhatThucUong_xacNhanNhomThucUong += new ucCapNhatThucUong.CapNhatThucUong_XacNhanNhomThucUongHandle(them_xacNhanNhom);
            // // ẩn thuộc tính tinhtrang đi
            uscThemThucUong.LbntinhtrangVisible = false;
            uscThemThucUong.RbtnconVisible = false;
            uscThemThucUong.RbtnhetVisible = false;
            // gán các giá trị
            uscThemThucUong.Anhdaidien = linkanh;
            _tenanhcu = linkanh;
            uscThemThucUong.Mathucuong = mathucuong;
            uscThemThucUong.Tenthucuong = tenthucuong;
            uscThemThucUong.Dongia = dongia;
            uscThemThucUong.Thongtin = thongtin;
            uscThemThucUong.Nhomthucuong = nhom;
            uscThemThucUong.Cachphache = cachphache;
            uscThemThucUong.Thongtindinhduong = thongtindinhduong;
        }


        #region Viết các hàm cho sự kiện này

        // xử lý việc thêm ảnh
        public void them_chonAnh()
        {
            openFileDialog1.Title = "Open File";
            openFileDialog1.Filter = "Image Files(*.bmp;*.jpg;*.gif;*.png;*.ico)| (*.bmp;*.jpg;*.gif;*.png;*.ico)|All files (*.*)|*.*";
            openFileDialog1.FileName = "";

            try
            {
                openFileDialog1.InitialDirectory = "C:\\Temp";
            }
            catch
            {
                // skip it 
            }

            openFileDialog1.ShowDialog();

            if (openFileDialog1.FileName == "") // nếu người ta ko chọn
            {
                return;
            }
            else
            {
                // để đường dẫn lên textbox
                uscThemThucUong.Linkanh = openFileDialog1.FileName;
                // sau dó hi?n ?nh lên
                uscThemThucUong.Anhdaidien = openFileDialog1.FileName;
                // lấy ra tên ảnh
                uscThemThucUong.Tenanh = Path.GetFileName(openFileDialog1.FileName);
            }
        }

        // xử lý việc xác nhận mã
        public void them_xacNhanMa()
        {
            try
            {
                // kiểm tra xem người ta có chọn mã chưa
                if (uscThemThucUong.Mathucuong.Length != 0)
                {
                    // kiểm tra mã
                    bool flag = ws.TU_DaTonTaiThucUong(uscThemThucUong.Mathucuong, "");
                    if (flag == true)
                    {
                        //xuất ra thông báo
                        MessageBox.Show("Mã thức uống đã tồn tại, vui lòng nhập mã khác!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        _maThucUongHopLe = false;
                        return;
                    }
                    else
                    {
                        //xuất ra thông báo
                        MessageBox.Show("Mã thức uống hợp lệ!", "Infomation", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        _maThucUongHopLe = true;
                        return;
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(" Đã có lỗi xảy ra: " + e);
            }
        }

        // kiểm tra mã thức uống => gọi bên NhomThucUong
        private void them_xacNhanNhom()
        {
            try
            {
                // kiểm tra xem người ta có chọn mã chưa
                if (uscThemThucUong.Nhomthucuong.Length != 0)
                {
                    // kiểm tra mã
                    bool flag = ws.NTU_DaTonTaiNhomThucUong(uscThemThucUong.Nhomthucuong);
                    if (flag == true)
                    {
                        //xuất ra thông báo
                        MessageBox.Show("Mã nhóm thức uống hợp lệ!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        _maNhomThucUongHopLe = true;
                        return;
                    }
                    else
                    {
                        //xuất ra thông báo
                        MessageBox.Show("Mã nhóm thức uống chưa tồn tại!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        _maNhomThucUongHopLe = false;
                        return;
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(" Đã có lỗi xảy ra: " + e);
            }
        }

        private void uscThemThucUong_Load(object sender, EventArgs e)
        {

        }

        // xử lý việc đăng kí thức uống
        private void btnDongY_Click(object sender, EventArgs e)
        {
            // kiểm tra xem có check mathucuong chua
            if (_maThucUongHopLe == true)
            {
                // kiểm tra xem có check manhomthucuong chua
                if (_maNhomThucUongHopLe == true) // check rồi
                {
                    if (uscThemThucUong.Linkanh != string.Empty) // nếu có thay đổi ảnh thì cập nhật ảnh
                    {
                        // kiểm tra tên ảnh có trùng với trên server chưa
                        if (Path.GetFileName(_tenanhcu) == Path.GetFileName(uscThemThucUong.Linkanh))
                        {
                            // xuất thông báo không up dc
                            MessageBox.Show("Tên ảnh đã bị trùng trên server, vui lòng chọn với tên khác!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                        // up ảnh lên
                        // gọi thread
                        Thread thread_uploadAnh = new Thread(uploadAnhdaidien);
                        thread_uploadAnh.SetApartmentState(ApartmentState.STA);
                        thread_uploadAnh.Start();
                        // lấy ra đơn giá
                        float dongia = float.Parse(uscThemThucUong.Dongia);
                        // up lên server
                        bool flag = ws.TU_ThemThucUongThanhCong(uscThemThucUong.Mathucuong, uscThemThucUong.Tenthucuong, dongia, uscThemThucUong.Tenanh, uscThemThucUong.Thongtin, 1, uscThemThucUong.Nhomthucuong, uscThemThucUong.Cachphache, uscThemThucUong.Thongtindinhduong);
                        if (flag == true) // thêm thành công
                        {
                            MessageBox.Show("Thức uống được thêm thành công!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        }
                        else
                        {
                            MessageBox.Show("Thêm thức uống thất bại!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        }
                    }

                    else
                    {
                        MessageBox.Show("Ảnh đại diện cho thức uống chưa được chọn!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    }
                }
                else
                {
                    MessageBox.Show("Bạn chưa kiểm tra nhóm thức uống!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);

                }
            }
            else
            {
                MessageBox.Show("Bạn chưa kiểm tra mã thức uống!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

        }
        
        #endregion
        

        #region Sử dụng các thread

        // upload ảnh lên
        public void uploadAnhdaidien()
        {
            ws.Image_UploadThucUong(uscThemThucUong.Linkanh);
        }

        #endregion

            private void btnHuyBo_Click(object sender, EventArgs e)
            {
                // đóng form này lại
                this.Close();

            }
    }
}
